#ifndef SEAWINKNXDEVICE_H
#define SEAWINKNXDEVICE_H
#include "System/System.h"
#include "Device/BaseDevice.h"
#include "Protocol/SWKNXProtocol.h"

#include "Command/SWKNXProtocol/CtrlSWKNXProgramLed.h"
#include "Command/SWKNXProtocol/getKNXMacCmd.h"
#include "Command/SWKNXProtocol/ackKNXMacCmd.h"
#include "Command/SWKNXProtocol/getKNXStatusCmd.h"
#include "Command/SWKNXProtocol/ackKNXStatusCmd.h"
#include "Command/CloudProtocol/UpperSearchResponseCmd.h"
#include <QObject>

class SeaWinKNXDevice: public BaseInterface<SeaWinKNXDevice>
{
    Q_OBJECT
public:
    Q_INVOKABLE explicit SeaWinKNXDevice(QObject *parent = 0);

    void getMacSlot();
private:
    SWKNXProtocol *swKNXProtocol;
    PortStruct m_target;
    QTimer *heartbeatTimer;
    QTimer *getMacTimer;
    quint8 ss;

     void ackKNXStatusCmdHandle(PortStruct source, QSharedPointer<BaseCmd> sharedCmd);
     void getMacSlot1(QSharedPointer<BaseFunc> sharedFunc);
//public slots:

//    void heartbeatSlot();
 //   void getMacSlot();
 //    void writeC3();
};

#endif // SEAWINKNXDEVICE_H
